package com.ruoyi.develop.finance.financeAp.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 应付账单对象 finance_ap
 *
 * @author lmm
 * @date 2025-07-27
 */
public class FinanceAp extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** * 主键    */
    private String id;

    /** * 编号 */
    private String nos;

    /** * 类型    */
    @Excel(name = "类型")
    private String type;

    /** * 供应商id     */
    @Excel(name = "供应商id")
    private String supplierId;

    /** * 供应商名称  */
    @Excel(name = "供应商名称")
    private String supplierName;

    /** * 发生日期  */
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "发生日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date occurDate;

    /** * 到期日期  */
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "到期日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date dueDate;

    /**
     * 应付金额
     */
    @Excel(name = "应付金额")
    private BigDecimal payMoney;

    /** * 已付金额  */
    @Excel(name = "已付金额")
    private BigDecimal paidMoney;

    /** * 剩余金额  */
    @Excel(name = "剩余金额")
    private BigDecimal remainMoney;

    /** * 状态    */
    @Excel(name = "状态")
    private String status;

    /** * 发票id */
    @Excel(name = "发票id")
    private String invoiceId;

    /** * 编号    */
    @Excel(name = "编号")
    private String invoiceNos;

    /** * 发票编号 */
    @Excel(name = "发票编号")
    private String invoiceCode;

    /** * 入库id */
    @Excel(name = "入库id")
    private String storeInId;

    /** * 入库编号 */
    @Excel(name = "入库编号")
    private String storeInNos;

    /** * 入库nos */
    @Excel(name = "入库时间")
    private Date storeInDate;


    /** * 开票日期   */
    @Excel(name = "开票日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date invoiceDate;

    /** * 打款id    */
    @Excel(name = "打款id")
    private String payRecordId;

    /** * 打款记录编号  */
    @Excel(name = "打款记录编号")
    private String payRecordNo;

    /** * 付款日期   */
    @Excel(name = "付款日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date payRecordDate;

    /** * 描述   */
    @Excel(name = "描述")
    private String description;

    /** * 删除标志   */
    private String delFlag;

    public String getNos() {
        return nos;
    }

    public void setNos(String nos) {
        this.nos = nos;
    }

    public Date getInvoiceDate() {
        return invoiceDate;
    }

    public void setInvoiceDate(Date invoiceDate) {
        this.invoiceDate = invoiceDate;
    }

    public Date getPayRecordDate() {
        return payRecordDate;
    }

    public void setPayRecordDate(Date payRecordDate) {
        this.payRecordDate = payRecordDate;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getId() {
        return id;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getType() {
        return type;
    }

    public void setSupplierId(String supplierId) {
        this.supplierId = supplierId;
    }

    public String getSupplierId() {
        return supplierId;
    }

    public void setSupplierName(String supplierName) {
        this.supplierName = supplierName;
    }

    public String getSupplierName() {
        return supplierName;
    }

    public void setOccurDate(Date occurDate) {
        this.occurDate = occurDate;
    }

    public Date getOccurDate() {
        return occurDate;
    }

    public void setDueDate(Date dueDate) {
        this.dueDate = dueDate;
    }

    public Date getDueDate() {
        return dueDate;
    }

    public void setPayMoney(BigDecimal payMoney) {
        this.payMoney = payMoney;
    }

    public BigDecimal getPayMoney() {
        return payMoney;
    }

    public void setPaidMoney(BigDecimal paidMoney) {
        this.paidMoney = paidMoney;
    }

    public BigDecimal getPaidMoney() {
        return paidMoney;
    }

    public void setRemainMoney(BigDecimal remainMoney) {
        this.remainMoney = remainMoney;
    }

    public BigDecimal getRemainMoney() {
        return remainMoney;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getStatus() {
        return status;
    }

    public void setInvoiceId(String invoiceId) {
        this.invoiceId = invoiceId;
    }

    public String getInvoiceId() {
        return invoiceId;
    }

    public String getInvoiceNos() {
        return invoiceNos;
    }

    public void setInvoiceNos(String invoiceNos) {
        this.invoiceNos = invoiceNos;
    }

    public void setInvoiceCode(String invoiceCode) {
        this.invoiceCode = invoiceCode;
    }

    public String getInvoiceCode() {
        return invoiceCode;
    }

    public void setPayRecordId(String payRecordId) {
        this.payRecordId = payRecordId;
    }

    public String getPayRecordId() {
        return payRecordId;
    }

    public String getPayRecordNo() {
        return payRecordNo;
    }

    public void setPayRecordNo(String payRecordNo) {
        this.payRecordNo = payRecordNo;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }

    public String getDelFlag() {
        return delFlag;
    }

    public String getStoreInId() {
        return storeInId;
    }

    public void setStoreInId(String storeInId) {
        this.storeInId = storeInId;
    }

    public String getStoreInNos() {
        return storeInNos;
    }

    public void setStoreInNos(String storeInNos) {
        this.storeInNos = storeInNos;
    }

    public Date getStoreInDate() {
        return storeInDate;
    }

    public void setStoreInDate(Date storeInDate) {
        this.storeInDate = storeInDate;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("type", getType())
                .append("supplierId", getSupplierId())
                .append("supplierName", getSupplierName())
                .append("occurDate", getOccurDate())
                .append("dueDate", getDueDate())
                .append("payMoney", getPayMoney())
                .append("paidMoney", getPaidMoney())
                .append("remainMoney", getRemainMoney())
                .append("status", getStatus())
                .append("invoiceId", getInvoiceId())
                .append("invoiceNos", getInvoiceNos())
                .append("invoiceCode", getInvoiceCode())
                .append("payRecordId", getPayRecordId())
                .append("payRecordNo", getPayRecordNo())
                .append("desc", getDescription())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("delFlag", getDelFlag())
                .toString();
    }
}
